Snowflakeの新UI「Snowsight」の「クエリフィルタ」を試してみました
こんにちは!DA(データアナリティクス)事業本部 インテグレーション部の大高です。
先日Snowflakeのオンラインイベント「Say Hello To The Data Cloud」にて、様々な新機能、実装予定の機能が紹介されました。
この中の既にPreview Featuresとして公開されているSnowsightのクエリフィルタを試してみたいと思います。
Snowsightの簡単な利用方法などについてはこちらの記事にも記載しています。
クエリフィルタを使ってみる
今回試すクエリフィルタはこちらに記載のシステムフィルタ「:daterange」と「:datebucket」です。
利用例
始めに例を挙げると、以下のようなクエリでフィルタが利用できます。
SELECT :datebucket(DATE) AS DATE , CASE_TYPE , SUM(CASES) AS CASES FROM JHU_COVID_19 WHERE COUNTRY_REGION = 'Japan' AND PROVINCE_STATE = 'Tokyo' AND DATE = :daterange GROUP BY :datebucket(DATE) , CASE_TYPE ;
このクエリは、COVID-19の東京の感染者数を状態別(Active, Confirmed, Deaths, Recoverd)に集約したものです。
チャート化するとこんな感じですね。
daterange フィルタ
こちらは名前の通り「日付の範囲」でフィルタリングできます。今回はDATEカラムに対してかけています。
SELECT :datebucket(DATE) AS DATE , CASE_TYPE , SUM(CASES) AS CASES FROM JHU_COVID_19 WHERE COUNTRY_REGION = 'Japan' AND PROVINCE_STATE = 'Tokyo' AND DATE = :daterange GROUP BY :datebucket(DATE) , CASE_TYPE ;
フィルタを利用すると画面上部からdaterange用のフィルタ選択が出来るようになります。
Last day
からAll time
までは、記載の通りそのまま期間指定が可能です。クリックした瞬間に、指定期間でフィルタが行われたクエリが発行されます。
Custom
Custom
を指定すると、更に細かく指定することもできます。
Range
カレンダーベースで範囲指定ができて、更にタイムゾーン指定もできます。
Last
現在時刻から過去への期間指定ができます。日、週、月、年が指定が可能です。
さらに「部分的な日を含める」か、などのオプションもありました。これはどういうオプションなのかも見てみます。
例として、「2020/06/18」に「include partial days」として直近1週間を指定すると以下のように「2020/06/12 から 2020/06/16 (元データが16日までしかないため)まで」のデータが取得できました。直近の7日間が指定された形ですね。
また、「2020/06/18」に「exclude partial weeks」として直近1週間を指定すると以下のように「2020/06/08」から「2020/06/14」までのデータが取得できました。今度は先週の「月曜日 から 日曜日 まで」が指定された形となりました。
このように、指定した単位(週)で考えた時に、絶対的な範囲(月~日)として考えてそれ以外の日を除外する(exclude partial weeks)のか、相対的な範囲(直近7日間)(include partial days)なのかが変わるようです。
更にタイムゾーン指定もできるので、非常に細かい設定が可能なのが分かりますね。
Next
こちらはLastと同じように現在時刻から未来への期間指定ができます。日、週、月、年が指定が可能です。
Before
指定日からの過去すべてを指定できます。
After
指定日からの未来すべてを指定できます。
databucket フィルタ
このフィルタはGROUP BYで利用できるフィルタです。引数にカラムを指定します。
SELECT :datebucket(DATE) AS DATE , CASE_TYPE , SUM(CASES) AS CASES FROM JHU_COVID_19 WHERE COUNTRY_REGION = 'Japan' AND PROVINCE_STATE = 'Tokyo' AND DATE = :daterange GROUP BY :datebucket(DATE) , CASE_TYPE ;
フィルタを利用すると画面上部からdatabucket用のフィルタ選択が出来るようになります。
秒単位から年単位までと細かくグルーピングできますね。こちらもタイムゾーン指定可能でした。
まとめ
以上、Snowsightの「クエリフィルタ」を試してみました。実際にチャートと組み合わせて使ってみると、色々なフィルタ条件でチャート表示がすぐに切り替えられるので非常に便利だと感じました。
どなたかのお役に立てば幸いです。それでは!